#ifndef LOGGER_HPP_INCLUDED
#define LOGGER_HPP_INCLUDED

#include <string>

class Logger
{
	public:
		static Logger& instance();
		
		Logger& writeInformation();
		Logger& writeWarning();
		Logger& writeError();
		
		Logger& operator<<(const std::string& s);
		Logger& operator<<(const float f);
		Logger& operator<<(const int i);
		
	private:
		Logger();
		virtual ~Logger ();
};

#define LogInfo Logger::instance().writeInformation()
#define LogWarn Logger::instance().writeWarning()
#define LogErr Logger::instance().writeError()
#define LogEnd "\n"

#endif
